#ifndef __STR_CALCULATE_H
#define __STR_CALCULATE_H


#include "main.h"
#include "stdio.h"
#include "string.h"

#define STR_DEPTH			10
#define NUM_DEPTH 		5
#define SYM_DEPTH			5

#define NUMBER_TYPE 	0
#define SYMBOL_TYPE 	1
#define POINT_TYPE		2




typedef struct{
	char symbol;
	float number;
	char datatpye;
}caldata_t;

typedef struct{
	char data[STR_DEPTH];
	u8 Top_Point;
}StrStack_t;

typedef struct{
	char data[NUM_DEPTH];
	u8 Top_Point;	
}NumStack_t;

typedef struct{
	char data[SYM_DEPTH];
	u8 Top_Point;	
}SymStack_t;


uint8_t strput(StrStack_t * st,char strin);
uint8_t strdel(StrStack_t * st);
uint8_t strstack_isEmpty(StrStack_t* st);
void strclear(StrStack_t* sq);


void symclear(SymStack_t* sq);
void numclear(NumStack_t* sq);
u8 NumSysSeparate(char *str, u8 strlen, NumStack_t *numstack, SymStack_t *symstack);
u8 StrCalculate(char *str, NumStack_t *numstack, SymStack_t *symstack);
u8 isIntNumber(float number);


#endif
